#include<iostream>
#include <stack> 

using namespace std;
// 将十进制数转换为二进制并使用栈存储
void decimalToBinary(int decimal) {
    stack<int> s;
    int index = 0;
    // 处理输入为0的特殊情况
    if (decimal == 0) {
        s.push(0);
    }

    // 循环除以2，将余数压入栈
    while (decimal > 0) {
        index = decimal % 2;
        s.push(index);
        decimal = decimal / 2;
    }

    // 弹出栈中的元素并打印，得到二进制数
    while (!s.empty())
    {
        cout << s.top();
        s.pop();
    }
}

int main() {
    int Number = 17;
    printf("%d二进制为 ", Number);
    decimalToBinary(Number);
    return 0;
}
